{{tag>Bionic Eoan calcul_collaboratif}}
----

====== Boinc : calculs distribués sur Internet ====== 

{{ applications..boinc_logo_july_2007.png|}}

**BOINC**, acronyme de **B**erkeley **O**pen **I**nfrastructure for **N**etwork **C**omputing est un plate-forme de calcul distribué mise au point par l'université de Berkeley. Ce programme permet à n'importe quelle personne volontaire de participer à des projets scientifiques en mettant à disposition la puissance de calcul inutilisée de votre ordinateur au profit de la science. Différents projets de calculs sont en cours d'avancement, vous pouvez rejoindre ceux de votre choix à tous moments.
Il n'y a pas de configuration minimale, n'importe quelle ordinateur est capable de faire tourner ce logiciel. Les résultats dépendront seulement de la puissance de calcul de votre processeur.
===== Pré-requis =====
 
  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
===== Installation =====

==== Depuis les dépôts ====

Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>boinc]]**

==== Depuis les sources ====

Bien que ceci soit conseillé sur leur site, la version disponible en 2020 est complètement obsolète et son installation n'est pas fonctionnelle par manque d'une librairie (libwebkitgtk-1.0-0).
\\ Vous pouvez vérifier les versions disponibles ainsi que leurs dates de publication sur la page [[https://boinc.berkeley.edu/download_all.php]]

=== Installation ===

  * Déplacer le script dans un dossier //mes logiciels//, pour l'exemple ici il s'agira de //~/bin//((~ étant votre Dossier Personnel))
  * Ne créez pas de sous-dossier //boinc//, le script d'installation s'en occupera tout seul.
  * Ensuite depuis un [[:terminal]] saisissez les [[:commande_shell|commandes]] suivantes : <code>cd ~/bin
sh boinc_7.4.22_x86_64-pc-linux-gnu.sh</code> (à adapter au nom du script téléchargé)
  * Si l'installation s'est bien déroulée un nouveau dossier est créé dans votre dossier ~/bin, il s'agit de "BOINC"
  * Allez dans ce dossier pour lancez l'interface de configuration <code>cd ~/bin/BOINC
./run_manager</code>

===== Configuration =====

==== Rejoindre un projet ====
De nombreux projets sont proposés pour Boinc dans les domaines biologique, physique, nanotechnologique, astronomique, climatologique, mathématique, informatique... Voir [[http://fr.wikipedia.org/wiki/Liste_des_projets_BOINC|la liste des projets]].

<note tip>Voici un exemple d'[[:tutoriel:boinc_covid19|installation et configuration pour contribuer à une recherche sur COVID-19]]</note>

Pour rejoindre un projet, lancez **Boinc Manager**.
Une fenêtre devrait vous proposer de rejoindre un projet. Si ce n'est pas le cas, cliquez sur "Outils" -> "Ajouter un projet".
Sélectionnez le projet que vous voulez rejoindre dans la liste qui apparaîtra, et cliquez sur "Suivant".
Ensuite, cliquez sur: "Non, nouvel utilisateur" puis laissez-vous guider afin de vous inscrire au projet.
Finalement, un message vous confirmant l'attachement au projet devrait apparaître: cliquez sur "Fin".

Boinc va maintenant récupérer des calculs puis va commencer à les exécuter. Vous n'avez même pas besoin d'être connecté à internet pour que Boinc fonctionne. Il vous faut être connecté afin qu'il envoie les résultats et qu'il reçoive de nouveaux calculs.

===== Utilisation =====
Une fois installé, le logiciel **BOINC Manager** permet de contrôler le client BOINC. Il est accessible dans les applications.

Notez bien que le client se lance automatiquement au démarrage d'Ubuntu.


==== Mettre Boinc en "pause" ====
Lorsque vous voulez faire faire une pause à Boinc afin d'exécuter un programme gourmand en ressource, cliquez sur le bouton "Suspendre". Le bouton "Reprendre" relance les calculs.

==== Les menus sous Boinc ====
La configuration de Boinc est relativement simple. Nous allons voir ici à quoi servent chacun des menus.

  * Fichier: permet de fermer le manager. Attention, cette procédure ne ferme pas les processus de calculs ouvert par Boinc.
  * Affichage : il vous permet de basculer entre une vue "simple" et une vue "avancée" plus descriptive.
  * Options : en vue "avancée", permet des réglages importants notamment sur l'occupation des processeurs, du disque système et du réseau. BOINC est très gourmand par défaut utilisant 100% des processeurs, tout le disque, etc. Votre machine risque de devenir bruyante, chauffer... Vous pouvez donc moduler cela ici. 
  * Outils: permet de gérer vos comptes ou de rejoindre un nouveau projet.
  * Activité: seulement visible en vue "avancée", il permet de choisir l'activité du processeur ou l'activité réseau.
  

==== Calculs avec le GPU =====
Si vous avez une carte graphique **Nvidia CUDA** ou **ATI Stream**, vous pouviez l'utiliser pour calculer plus rapidement. Vous deviez disposer d'une version de Boinc supérieure à 6.3 (Octobre 2008). Consultez au passage la [[http://boinc.berkeley.edu/wiki/GPU_computing#Attach_to_projects_with_GPU_applications|liste des projets supportant les calculs GPU]].

Ceci ne semble plus d'actualité.


===== Comment quitter BOINC =====
Boinc est un DAEMON. Si vous avez besoin d'arrêter votre ordinateur, faites-le. Au prochain démarrage, Boinc continuera les calculs qu'il effectuait avant l'arrêt sans problème. \\ Pour empêcher cela décochez "Exécuter le client" dans le menu Options / Autres options, en vue "Simple". \\ Pour suspendre le travail de BOINC, utiliser le bouton "Suspendre" dans le manager.

===== Ligne de commande  =====

==== Préalable ====
Les commandes ci-dessous sont tapées localement. Il faut toutefois noter que même dans ce cas de figure il faut prendre quelques précautions :

  * Il faut se trouver dans le répertoire /etc/boinc-client pour ne pas avoir à taper --host localhost juste après chaque commande boinccmd (ou boinc_cmd) ... même si le binaire en question est bien connu dans les variables d'environnement (de toute facon il ne se trouve pas dans /etc/boinc-client).
  * S'il y a un mot de passe dans le fichier /var/lib/boinc-client/gui_rpc_auth.cfg (par exemple mypasswd) alors il faudra commencer toutes les commandes par

  boinc_cmd --host localhost --passwd mypasswd

C'est surprenant d'ailleurs car en principe ce mot de passe sert pour les connexions en gui distantes, mais s'il n'y a pas de mot de passe la commande "boinc_cmd" n'a pas besoin de --host ... ca va plus vite à taper :o)

Il suffit de faire un essai avec
  boinc_cmd -V

Si cela répond //Authorization failed : 155//, alors il faut préfixer toutes les commandes comme cité plus haut (et être dans le bon répertoire).

==== La doc ====
Les détails de la commande boinc_cmd sont décrits sur [[http://boinc.berkeley.edu/wiki/Boinccmd_tool|cette page]] ou simplement dans le manuel:
  man boinc_cmd

==== Exemple ====
Voici toutefois un "quickstart" avec un proxy.

=== Utiliser un proxy === 
<code>
--set_proxy_settings http_server_name http_server_port http_user_name http_user_passwd socks_server_name `socks_server_port socks_version socks5_user_name socks5_user_passwd
</code>

Tous les champs étant obligatoires, il faut utiliser deux guillemets pour indiquer une chaîne vide. Exemple:
  boinccmd --host localhost  --set_proxy_settings url_du_proxy 1234 "" "" "" "" "" "" ""

Mais attention ! il y a clairement quelque chose qui cloche (sur toutes mes machines 8.10 Intrepid en tout cas) :
  * la commande boinccmd --get_proxy_settings ne retourne jamais rien, même quand un proxy est paramétré et fonctionnel.
  * pour que les paramètres proxy indiqués par la commande set_proxy_settings soient pris en compte, il faut éditer manuellement un fichier !

Stopper le daemon:
<code>sudo /etc/init.d/boinc-client stop</code>

éditer le fichier **client_state.xml**:
<code>sudo vim /var/lib/boinc-client/client_state.xml</code>

Juste après
  <proxy_info>
ajouter: 
  <use_http_proxy/>

Relancer le daemon:
<code>sudo /etc/init.d/boinc-client start</code>

=== Connaître l'"account key" de votre compte ===
  boinccmd --lookup_account url_du_projet login mot_de_passe
Cela retourne l'"account key", une chaîne de 32 chiffres.

=== Rejoindre un projet  ===
  boinccmd --host localhost  --project_attach URL_du_projet account_key
Voilà. Au bout de quelques minutes le travail devrait commencer. On peut avoir des infos via la commande 
  boinccmd --get_state
Il semble que parfois il faille "forcer" le départ via
  boinccmd --set_run_mode always

===== Voir aussi =====
  * Le site de Boinc (EN): [[http://boinc.berkeley.edu/]]
  * Installation sur Ubuntu (EN): [[http://boinc.berkeley.edu/wiki/Installing_BOINC_on_Ubuntu]]
  * Liste des projets: [[http://fr.wikipedia.org/wiki/Liste_des_projets_BOINC]]
  * Le site de l'alliance francophone: [[http://www.boinc-af.org/]]
  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=402495|Discussion "Boinc"]] sur le forum ubuntu-fr

----

//Contributeurs :  [[utilisateurs:gregm54]] [[utilisateurs:lo72]]//